﻿using NHibernate;
using NHibernateEntities.Entities;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Xunit;

namespace UnitTest
{
    public class CategoryFacts
    {
        private static ISession _session;
        public CategoryFacts()
        {
            _session = NHibernateFacts.GetSesstion();
        }

       // [Fact]
        public void Insert()
        {
            var category0 = new Category
            {
                Description = "การจับกุมที่เป็นข่าวตาม website ต่างๆ",
                Name = "ข่าวการจับกุม"
            };

            var category1 = new Category
            {
                Description = "คลิปกาารจับกุมตามสื่อต่างๆ",
                Name = "คลิปการจับกุม"
            };

            var category2 = new Category
            {
                Description = "การจับกุมจากไลน์",
                Name = "ผลการจับกุม"
            };

            var categories = new List<Category>();
            categories.Add(category0);
            categories.Add(category1);
            categories.Add(category2);

            using (var tx = _session.BeginTransaction())
            {
                try
                {
                    foreach (var category in categories)
                    {
                        _session.Save(category);
                    }
                    tx.Commit();
                    _session.Clear();

                    var list = _session.CreateCriteria<Category>().List<Category>();
                    Assert.NotNull(list);
                    Assert.True(list.Count == categories.Count);
                }
                catch (Exception)
                {
                    tx.Rollback();
                }
            }
        }
    }
}
